home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / edit / mg2a_src.zip / CHRDEF.H < prev    next >
C/C++ Source or Header  |  1991-02-16  |  2KB  |  95 lines

  1. /*
  2.  * sys/msdos/chardef.h: character set specific #defines for mg 2a
  3.  */
  4.  
  5. #ifndef    CHARMASK
  6. /*
  7.  * casting should be at least as efficent as anding with 0xff,
  8.  * and won't have the size problems.  Override in sysdef.h if no
  9.  * unsigned char type.
  10.  */
  11. #define    CHARMASK(c)    ((unsigned char) (c))
  12. #endif
  13.  
  14. /*
  15.  * These flags, and the macros below them,
  16.  * make up a do-it-yourself set of "ctype" macros that
  17.  * understand the DEC multinational set, and let me ask
  18.  * a slightly different set of questions.
  19.  */
  20. #define _W    0x01            /* Word.            */
  21. #define _U    0x02            /* Upper case letter.        */
  22. #define _L    0x04            /* Lower case letter.        */
  23. #define _C    0x08            /* Control.            */
  24. #define _P    0x10            /* end of sentence punctuation    */
  25. #define    _D    0x20            /* is decimal digit        */
  26.  
  27. #define ISWORD(c)    ((cinfo[CHARMASK(c)]&_W)!=0)
  28. #define ISCTRL(c)    ((cinfo[CHARMASK(c)]&_C)!=0)
  29. #define ISUPPER(c)    ((cinfo[CHARMASK(c)]&_U)!=0)
  30. #define ISLOWER(c)    ((cinfo[CHARMASK(c)]&_L)!=0)
  31. #define ISEOSP(c)    ((cinfo[CHARMASK(c)]&_P)!=0)
  32. #define    ISDIGIT(c)    ((cinfo[CHARMASK(c)]&_D)!=0)
  33. #define TOUPPER(c)    ((c)-0x20)
  34. #define TOLOWER(c)    ((c)+0x20)
  35.  
  36. /*
  37.  * generally useful thing for chars
  38.  */
  39. #define CCHR(x)        ((x) ^ 0x40)    /* CCHR('?') == DEL */
  40.  
  41. #ifndef    METACH
  42. #define    METACH    CCHR('[')
  43. #endif
  44.  
  45. #ifdef    XKEYS
  46. #define    K00    256
  47. #define    K01    257
  48. #define    K02    258
  49. #define    K03    259
  50. #define    K04    260
  51. #define    K05    261
  52. #define    K06    262
  53. #define    K07    263
  54. #define    K08    264
  55. #define    K09    265
  56. #define    K0A    266
  57. #define    K0B    267
  58. #define    K0C    268
  59. #define    K0D    269
  60. #define    K0E    270
  61. #define    K0F    271
  62. #define    K10    272
  63. #define    K11    273
  64. #define    K12    274
  65. #define    K13    275
  66. #define    K14    276
  67. #define    K15    277
  68. #define    K16    278
  69. #define    K17    279
  70. #define    K18    280
  71. #define    K19    281
  72. #define    K1A    282
  73. #define    K1B    283
  74. #define    K1C    284
  75. #define    K1D    285
  76. #define    K1E    286
  77. #define    K1F    287
  78. #define    K20    288
  79. #define    K21    289
  80. #define    K22    290
  81. #define    K23    291
  82. #define    K24    292
  83. #define    K25    293
  84. #define    K26    294
  85. #define    K27    295
  86. #define    K28    296
  87. #define    K29    297
  88. #define    K2A    298
  89. #define    K2B    299
  90. #define    K2C    300
  91. #define    K2D    301
  92. #define    K2E    302
  93. #define    K2F    303
  94. #endif
  95.